let nums = [5, 2, 3, 1]
var minimumPairRemoval = function (nums) {
    // 辅助函数：检查数组是否非递减
    const isNonDecreasing = (arr) => {
        for (let i = 1; i < arr.length; i++) {
            if (arr[i] < arr[i - 1]) {
                return false;
            }
        }
        return true;
    };

    const n = nums.length;
    // 边界情况：数组长度 ≤ 1 或已非递减
    if (n <= 1 || isNonDecreasing(nums)) {
        return 0;
    }

    let arr = [...nums]; // 创建数组副本
    // 最多进行 n-1 次合并操作
    for (let t = 1; t < n; t++) {
        let minSum = Infinity;
        let minIndex = -1;

        // 查找最小相邻和及其位置
        for (let i = 0; i < arr.length - 1; i++) {
            const s = arr[i] + arr[i + 1];
            if (s < minSum) {
                minSum = s;
                minIndex = i;
            }
        }

        // 执行合并操作：替换选中的相邻对
        arr.splice(minIndex, 2, minSum);

        // 检查合并后数组是否非递减
        if (isNonDecreasing(arr)) {
            return t;
        }
    }
};
console.log(minimumPairRemoval(nums));
